package com.example.myblog.repository;

import com.example.myblog.model.Category;
import com.example.myblog.model.Post;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 文章数据访问接口
 */
@Repository
public interface PostRepository extends JpaRepository<Post, Long> {
    
    /**
     * 按创建时间降序查询所有文章
     * 
     * @return 按时间降序排列的文章列表
     */
    List<Post> findAllByOrderByCreatedAtDesc();
    
    /**
     * 按分类和创建时间降序查询文章
     * 
     * @param category 文章分类
     * @return 指定分类的文章列表，按时间降序排列
     */
    List<Post> findByCategoryOrderByCreatedAtDesc(Category category);
    
    /**
     * 查询访问量前N的文章
     * 
     * @return 按访问量降序排列的文章列表
     */
    List<Post> findTop5ByOrderByViewCountDesc();
    
    /**
     * 按分类查询访问量前N的文章
     * 
     * @param category 文章分类
     * @return 指定分类按访问量降序排列的文章列表
     */
    List<Post> findTop5ByCategoryOrderByViewCountDesc(Category category);
}